In computer programming, the term hooking covers a range of techniques used to alter or augment the behavior of an operating system, of applications, or of other software modules by intercepting function calls, messages, and/or events passed between software modules. A hook may refer to code that handles such intercepted function calls, messages, or events.